// import getPageTitle from '@/utils/get-page-title';
// import { Message } from 'element-ui';
import NProgress from 'nprogress'; // progress bar
import 'nprogress/nprogress.css'; // progress bar style
// import { getToken } from '@/utils/auth'; // get token from cookie
import { constantRoutes } from '@/router';
import store from './store';
import { getToken,setToken } from './utils/auth';

NProgress.configure({ showSpinner: false }); // NProgress Configuration

export default function setRouterGuard(router) {
  // const whiteList = ['/', '/home', '/dashboard', '/board', '/board/website']; // no redirect whitelist
  router.beforeEach(async (to, from, next) => {
    // start progress bar
    NProgress.start();
    // set page title
    // document.title = getPageTitle(to.meta.title);
    document.title = process.env.VUE_APP_WEBSITE_NAME;
    console.log(store);
    const token = 'eyJhbGciOiJIUzUxMiJ9.eyJsb2dpbl91c2VyX2tleSI6ImY5YmQ5NzMwLTE3MmItNDFiMS1hNWZlLTQ5ZmM2MjEyMDE5MyJ9.gQFlkvQzkxkx7tx7buK6z6KR2A5OIT8f7EIR64RCRywIBAqnPtYWhGrjRzVJqvozn3mAyG9ufVFllAGwsGg9TA'
    store.commit('SET_TOKEN',token)
    setToken(token);
    console.log(getToken())
    store.commit('SET_ROUTES', constantRoutes);
    store.commit('SET_SIDEBAR_ROUTERS', constantRoutes);
    store.commit('SET_DEFAULT_ROUTES', constantRoutes);
    store.commit('SET_TOPBAR_ROUTES', constantRoutes);
    // 根据token获取用户信息存储到store里
    next();
    // await store.dispatch('user/getInfo');

    //   // determine whether the user has logged in
    //   const hasToken = getToken();
    //   if (hasToken) {
    //     if (to.path === '/login') {
    //       // if is logged in, redirect to the home page
    //       next({ path: '/' });
    //       NProgress.done(); // hack: https://github.com/PanJiaChen/vue-element-admin/pull/2939
    //     } else {
    //       // determine whether the user has obtained his permission roles through getInfo
    //       const hasRoles = store.getters.roles && store.getters.roles.length > 0;
    //       if (hasRoles) {
    //         next();
    //       } else {
    //         try {
    //           // get user info
    //           // note: roles must be a object array! such as: ['admin'] or ,['developer','editor']
    //           const { roles } = await store.dispatch('user/getInfo');

    //           // generate accessible routes map based on roles
    //           const accessRoutes = await store.dispatch('permission/generateRoutes', roles);

    //           // dynamically add accessible routes
    //           router.addRoutes(accessRoutes);

    //           // hack method to ensure that addRoutes is complete
    //           // set the replace: true, so the navigation will not leave a history record
    //           next({ ...to, replace: true });
    //         } catch (error) {
    //           // remove token and go to login page to re-login
    //           await store.dispatch('user/resetToken');
    //           Message.error(error || 'Has Error');
    //           next(`/login?redirect=${to.path}`);
    //           NProgress.done();
    //         }
    //       }
    //     }
    //   } else if (whiteList.indexOf(to.path) !== -1) {
    //     /* has no token */
    //     // in the free login whitelist, go directly
    //     next();
    //   } else {
    //     // other pages that do not have permission to access are redirected to the login page.
    //     next(`/login?redirect=${to.path}`);
    //     NProgress.done();
    //   }
  });

  router.afterEach(() => {
    // finish progress bar
    NProgress.done();
  });
}
